package com.admin.system.modules.mnt.service;

import com.admin.system.modules.mnt.dto.DeployQueryDTO;
import com.admin.system.modules.mnt.entity.Deploy;
import com.admin.system.modules.mnt.entity.DeployHistory;
import com.admin.common.utils.PageResult;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;
import java.util.Set;

/**
 * @author sq-lan
 */
public interface DeployService extends IService<Deploy> {

    /**
     * 分页查询
     *
     * @param dto 条件
     * @return /
     */
    PageResult<Deploy> paging(DeployQueryDTO dto);

    /**
     * 查询
     *
     * @param dto 条件
     * @return /
     */
    List<Deploy> list(DeployQueryDTO dto);

    /**
     * 创建
     *
     * @param entity /
     */
    void add(Deploy entity);


    /**
     * 编辑
     *
     * @param entity /
     */
    void modify(Deploy entity);

    /**
     * 删除
     *
     * @param ids /
     */
    void remove(Set<Integer> ids);

    /**
     * 部署文件到服务器
     *
     * @param fileSavePath 文件路径
     * @param appId        应用ID
     */
    void deploy(String fileSavePath, Integer appId);

    /**
     * 查询部署状态
     *
     * @param entity /
     * @return /
     */
    String serverStatus(Deploy entity);

    /**
     * 启动服务
     *
     * @param entity /
     * @return /
     */
    String start(Deploy entity);

    /**
     * 停止服务
     *
     * @param entity /
     * @return /
     */
    String stop(Deploy entity);

    /**
     * 停止服务
     *
     * @param entity /
     * @return /
     */
    String reduction(DeployHistory entity);

}
